/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import clases.TipoUsuario;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author root
 */
public class MdlTipoUsuario implements Modelo<TipoUsuario>{

    /**
     * 
     * @param tipousuario
     * @param cnx
     * @throws SQLException 
     */
    @Override
    public void insert(TipoUsuario tipousuario, Conexion cnx) throws SQLException {
        String sql = "INSERT INTO tipoUsuario(nombre, p_movimiento, p_venta, p_comprobante, p_ordenCompra, p_compra, p_movimiento_caja) "
                + "VALUES('" + tipousuario.getNombre() + "', "
                + tipousuario.getP_movimiento() + ", "
                + tipousuario.getP_venta() + ", "
                + tipousuario.getP_comprobante() + ", "
                + tipousuario.getP_ordenCompra() + ", "
                + tipousuario.getP_compra() + ", "
                + tipousuario.getP_movimiento_caja() + ")";
        cnx.ejecutar(sql);
    }

    /**
     * 
     * @param cnx
     * @return
     * @throws SQLException 
     */
    @Override
    public int getLastId(Conexion cnx) throws SQLException {
        String sql = "SELECT MAX(idTipoUsuario) FROM tipoUsuario;";
        ResultSet rs = cnx.consultar(sql);
        if (rs.next()) {
            return rs.getInt(1);
        }
        return -1;
    }

    /**
     * 
     * @param tipousuario
     * @param cnx
     * @throws SQLException 
     */
    @Override
    public void update(TipoUsuario tipousuario, Conexion cnx) throws SQLException {
        String sql = "UPDATE tipoUsuario SET "
                + "nombre = '" + tipousuario.getNombre() + "', "
                + "p_movimiento = " + tipousuario.getP_movimiento() + ", "
                + "p_venta = " + tipousuario.getP_venta() + ", "
                + "p_comprobante = " + tipousuario.getP_comprobante() + ", "
                + "p_ordenCompra = " + tipousuario.getP_ordenCompra() + ", "
                + "p_compra = " + tipousuario.getP_compra() + ", "
                + "p_movimiento_caja = " + tipousuario.getP_movimiento_caja() + " "
                + "WHERE idTipoUsuario = " + tipousuario.getIdTipoUsuario();
        cnx.ejecutar(sql);
    }

    /**
     * 
     * @param query
     * @param cnx
     * @return
     * @throws SQLException 
     */
    @Override
    public ArrayList<TipoUsuario> get(String query, Conexion cnx) throws SQLException {
        ResultSet rs = cnx.consultar(query);
        ArrayList<TipoUsuario> tipos;
        tipos = new ArrayList();
        while(rs.next()){
            tipos.add(new TipoUsuario(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getInt(4),rs.getInt(5),rs.getInt(6),rs.getInt(7),rs.getInt(8)));
        }
        return tipos;
    }

    /**
     * 
     * @param id
     * @param cnx
     * @return
     * @throws SQLException 
     */
    @Override
    public TipoUsuario get(int id, Conexion cnx) throws SQLException {
        String sql = "SELECT * FROM tipoUsuario WHERE idTipoUsuario = " + id;
        ResultSet rs = cnx.consultar(sql);
        TipoUsuario tipo = null;
        if (rs.next()) {
            tipo = new TipoUsuario(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getInt(4),rs.getInt(5),rs.getInt(6),rs.getInt(7),rs.getInt(8));
        }
        return tipo;
    }
    
}
